# -*- coding:utf-8 -*-
# lambda 表达式
# lambda表达式，又名匿名函数
# 如果⼀个函数有⼀个返回值，并且只有⼀句代码，可以使⽤ lambda简化。
# lambda 参数列表 ： 表达式
# 函数
# def fn1():
#     return 100


# print(fn1())

# # lambda 表达式
# fn2 = lambda: 100
# print(fn2())

# 注意：lambda表达式的参数可有可⽆，函数的参数在lambda表达式中完全适⽤。
# lambda函数能接收任何数量的参数，但只能返回⼀个表达式的值


# 夹带参数的形式
# 函数
# def fn1(a, b):
#     return a + b
#
#
# print(fn1(10, 20))
#
# # lambda 表达式
# fn2 = (lambda a, b: a + b)(10, 20)
# print(fn2)

# 默认参数
# def fn1(a, b, num=10):
#     return a + b + num
#
#
# print(fn1(10, 20))
#
# fn2 = (lambda a, b, c=100: a + b + c)(10, 20)
# print(fn2)


# 不定长参数
# fn1 = (lambda *args: args)(10, 20, 30)
# print(fn1)
#
# fn2 = (lambda **kwargs: kwargs)(name='python', age=20)
# print(fn2)


# 列表数据按字典key的值排序
students = [
     {'name': '张三', 'age': 20},
     {'name': '李四', 'age': 19},
     {'name': '王五', 'age': 22}
 ]

students.sort(key=lambda v: v["age"], reverse=False)
print(students)
